Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Displaying Raw • Download


vendor/rns_filesync/tests/unit/test_paths.py f89f91e267d8079e6dec86fa9d3139ddbe7f64ce (f89f91e2) Text, 1.50 KB

T8b949e"""Unit tests for path jail."""

Tff7b72import T7ee787os

Tff7b72import T7ee787pytest

Tff7b72from T7ee787rns_filesyncT7ee787.T7ee787paths Tff7b72import Tb4b4b4(
Te6edf3PathJailErrorTb4b4b4,
Te6edf3normalize_relpathTb4b4b4,
Te6edf3relative_to_rootTb4b4b4,
Te6edf3resolve_under_rootTb4b4b4,
Tb4b4b4)

Te6edf3pytestmark Tff7b72= Te6edf3pytestTff7b72.Td2a8ffmarkTff7b72.Td2a8ffunit


Tff7b72def Td2a8fftest_normalize_relpath_okTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72assert Te6edf3normalize_relpathTb4b4b4(Ta5d6ff"Ta5d6ffa/b.txtTa5d6ff"Tb4b4b4) Tff7b72== Te6edf3osTff7b72.Td2a8ffpathTff7b72.Td2a8ffnormpathTb4b4b4(Ta5d6ff"Ta5d6ffa/b.txtTa5d6ff"Tb4b4b4)


Tff7b72def Td2a8fftest_normalize_rejects_absoluteTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72with Te6edf3pytestTff7b72.Td2a8ffraisesTb4b4b4(Te6edf3PathJailErrorTb4b4b4)Tb4b4b4:
Te6edf3normalize_relpathTb4b4b4(Ta5d6ff"Ta5d6ff/etc/passwdTa5d6ff"Tb4b4b4)


Tff7b72def Td2a8fftest_normalize_rejects_traversalTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72with Te6edf3pytestTff7b72.Td2a8ffraisesTb4b4b4(Te6edf3PathJailErrorTb4b4b4)Tb4b4b4:
Te6edf3normalize_relpathTb4b4b4(Ta5d6ff"Ta5d6ff../secretTa5d6ff"Tb4b4b4)
Tff7b72with Te6edf3pytestTff7b72.Td2a8ffraisesTb4b4b4(Te6edf3PathJailErrorTb4b4b4)Tb4b4b4:
Te6edf3normalize_relpathTb4b4b4(Ta5d6ff"Ta5d6ffa/../../bTa5d6ff"Tb4b4b4)


Tff7b72def Td2a8fftest_normalize_rejects_nullTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72with Te6edf3pytestTff7b72.Td2a8ffraisesTb4b4b4(Te6edf3PathJailErrorTb4b4b4)Tb4b4b4:
Te6edf3normalize_relpathTb4b4b4(Ta5d6ff"Ta5d6ffaTffea00\x00Ta5d6ffbTa5d6ff"Tb4b4b4)


Tff7b72def Td2a8fftest_resolve_under_rootTb4b4b4(Te6edf3tmp_pathTb4b4b4)Tb4b4b4:
Te6edf3root Tff7b72= Te6edf3tmp_path Tff7b72/ Ta5d6ff"Ta5d6ffsyncTa5d6ff"
Te6edf3rootTff7b72.Td2a8ffmkdirTb4b4b4(Tb4b4b4)
Te6edf3nested Tff7b72= Te6edf3root Tff7b72/ Ta5d6ff"Ta5d6ffdirTa5d6ff"
Te6edf3nestedTff7b72.Td2a8ffmkdirTb4b4b4(Tb4b4b4)
Te6edf3target Tff7b72= Te6edf3nested Tff7b72/ Ta5d6ff"Ta5d6fffile.txtTa5d6ff"
Te6edf3targetTff7b72.Td2a8ffwrite_textTb4b4b4(Ta5d6ff"Ta5d6ffxTa5d6ff"Tb4b4b4)
Te6edf3resolved Tff7b72= Te6edf3resolve_under_rootTb4b4b4(Tffa657strTb4b4b4(Te6edf3rootTb4b4b4)Tb4b4b4, Ta5d6ff"Ta5d6ffdir/file.txtTa5d6ff"Tb4b4b4)
Tff7b72assert Te6edf3resolved Tff7b72== Tffa657strTb4b4b4(Te6edf3targetTff7b72.Td2a8ffresolveTb4b4b4(Tb4b4b4)Tb4b4b4)


Tff7b72def Td2a8fftest_resolve_blocks_escapeTb4b4b4(Te6edf3tmp_pathTb4b4b4)Tb4b4b4:
Te6edf3root Tff7b72= Te6edf3tmp_path Tff7b72/ Ta5d6ff"Ta5d6ffsyncTa5d6ff"
Te6edf3rootTff7b72.Td2a8ffmkdirTb4b4b4(Tb4b4b4)
Te6edf3outside Tff7b72= Te6edf3tmp_path Tff7b72/ Ta5d6ff"Ta5d6ffoutside.txtTa5d6ff"
Te6edf3outsideTff7b72.Td2a8ffwrite_textTb4b4b4(Ta5d6ff"Ta5d6ffnopeTa5d6ff"Tb4b4b4)
Tff7b72with Te6edf3pytestTff7b72.Td2a8ffraisesTb4b4b4(Te6edf3PathJailErrorTb4b4b4)Tb4b4b4:
Te6edf3resolve_under_rootTb4b4b4(Tffa657strTb4b4b4(Te6edf3rootTb4b4b4)Tb4b4b4, Ta5d6ff"Ta5d6ff../outside.txtTa5d6ff"Tb4b4b4)


Tff7b72def Td2a8fftest_relative_to_rootTb4b4b4(Te6edf3tmp_pathTb4b4b4)Tb4b4b4:
Te6edf3root Tff7b72= Te6edf3tmp_path Tff7b72/ Ta5d6ff"Ta5d6ffsyncTa5d6ff"
Te6edf3rootTff7b72.Td2a8ffmkdirTb4b4b4(Tb4b4b4)
Te6edf3path Tff7b72= Te6edf3root Tff7b72/ Ta5d6ff"Ta5d6ffx.binTa5d6ff"
Te6edf3pathTff7b72.Td2a8ffwrite_bytesTb4b4b4(Ta5d6ffbTa5d6ff"Ta5d6ff1Ta5d6ff"Tb4b4b4)
Tff7b72assert Te6edf3relative_to_rootTb4b4b4(Tffa657strTb4b4b4(Te6edf3rootTb4b4b4)Tb4b4b4, Tffa657strTb4b4b4(Te6edf3pathTb4b4b4)Tb4b4b4) Tff7b72== Ta5d6ff"Ta5d6ffx.binTa5d6ff"


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────